home *** CD-ROM | disk | FTP | other *** search
/ ASME's Mechanical Engine…ing Toolkit 1997 December / ASME's Mechanical Engineering Toolkit 1997 December.iso / c_lang / varinc.lzh / GET_ADDR.C < prev    next >
Text File  |  1979-11-30  |  3KB  |  63 lines

  1. /* SOURCE FILE: GET_ADDR.C */
  2. /*****************************************************************************/
  3. /* get_addr() prompts for address data for order-entry programs. All data    */
  4. /*   are returned to the caller by arguments 3-9 (yes, 9 is rather high).    */
  5. /*****************************************************************************/
  6.  
  7. #include <stddefs.h>
  8. #include "projutil.h"
  9. #include "ordentry.h"
  10.  
  11. stepcode get_addr(step_rtn, row, name, company, 
  12.    street, street2, city, state, zip)
  13. stepcode step_rtn;                    /* step_rtn is passed in and returned. */
  14. short row;                                  /* screen row to begin prompting */
  15. char name[], company[], street[], street2[], city[], state[], zip[];
  16.  
  17.    {
  18.    short step;
  19.    enum prompts {NAME, COMPANY, STREET, STREET2, CITY, STATE, ZIP, ENDSTEPS};
  20.  
  21.    /* Begin at last prompt if screen backed into. */
  22.    step = (step_rtn == STEPOK) ? 0 : (short)ENDSTEPS - 1;
  23.    for (step_rtn = STEPOK; step_rtn != STEPCANC &&
  24.       (step != (short)ENDSTEPS) && (step >= 0); )
  25.       {
  26.       switch (step)
  27.          {
  28.          case NAME:                                             /* Get name. */
  29.             step_rtn = prompt(name, "L", 3, L_SHIP_NAME, MAND, row, 30);
  30.             break;
  31.          case COMPANY:                                  /* Get company name. */
  32.             step_rtn = prompt(company, "L", 3, L_SHIP_CMPY, OPT, row + 1, 30);
  33.             break;
  34.          case STREET:                   /* Get first line of street address. */
  35.             step_rtn = prompt(street, "L", 3, L_SHIP_STRT, MAND, row + 2, 30);
  36.             break;
  37.          case STREET2:                 /* Get second line of street address. */
  38.             step_rtn = prompt(street2, "L", 3, L_SHIP_STRT2, OPT, row + 3, 30);
  39.             break;
  40.          case CITY:                                             /* Get city. */
  41.             step_rtn = prompt(city, "L", 2, L_SHIP_CITY, MAND, row + 4, 30);
  42.             break;
  43.          case STATE:                 /* Get state's two-letter abbreviation. */
  44.             step_rtn = prompt(state, "A", L_SHIP_STATE,
  45.                L_SHIP_STATE, MAND, row + 4, 56);
  46.             break;
  47.          case ZIP:                                          /* Get zip code. */
  48.             step_rtn = prompt(zip, "#", L_SHIP_ZIP, 
  49.                L_SHIP_ZIP, MAND, row + 4, 65);
  50.             break;
  51.          }
  52.  
  53.       /* Determine next step based on return from last one. */
  54.       if (step_rtn == STEPOK)                        /* Was last successful? */
  55.          ++step;                                 /* Yes; go on to next step. */
  56.       else if (step_rtn == STEPBACK)  
  57.          --step;                                /* No; back up to last step. */
  58.       }
  59.    return (step_rtn);
  60.  
  61.    } 
  62.  
  63.